home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 11.6 KB | 423 lines | [TEXT/MPS ] |
- (*
- File: ColorPicker.mod
-
- Contains: Color Picker package Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE ColorPicker;
-
- IMPORT SYSTEM, Types, Quickdraw, Events, Dialogs, CMICCProfile, CMApplication,
- Balloons;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
-
- CONST
- (*Maximum small fract value, as long*)
- MaxSmallFract* = $0000FFFF;
-
- kDefaultWidth* = 383;
- kDefaultHeight* = 238;
-
- kDidNothing* = 0;
- kColorChanged* = 1;
- kOkHit* = 2;
- kCancelHit* = 3;
- kNewPickerChosen* = 4;
- kApplItemHit* = 5;
-
-
- TYPE
- PickerAction* = INTEGER;
-
-
- CONST
- kOriginalColor* = 0;
- kNewColor* = 1;
-
-
- TYPE
- ColorType* = INTEGER;
-
-
- CONST
- kCut* = 0;
- kCopy* = 1;
- kPaste* = 2;
- kClear* = 3;
- kUndo* = 4;
-
-
- TYPE
- EditOperation* = INTEGER;
-
-
- CONST
- kMouseDown* = 0;
- kKeyDown* = 1;
- kFieldEntered* = 2;
- kFieldLeft* = 3;
- kCutOp* = 4;
- kCopyOp* = 5;
- kPasteOp* = 6;
- kClearOp* = 7;
- kUndoOp* = 8;
-
-
- TYPE
- ItemModifier* = INTEGER;
-
-
- CONST
- kAtSpecifiedOrigin* = 0;
- kDeepestColorScreen* = 1;
- kCenterOnMainScreen* = 2;
-
-
- TYPE
- DialogPlacementSpec* = INTEGER;
-
-
- CONST
- DialogIsMoveable* = 1;
- DialogIsModal* = 2;
- CanModifyPalette* = 4;
- CanAnimatePalette* = 8;
- AppIsColorSyncAware* = 16;
- InSystemDialog* = 32;
- InApplicationDialog* = 64;
- InPickerDialog* = 128;
- DetachedFromChoices* = 256;
- CanDoColor* = 1;
- CanDoBlackWhite* = 2;
- AlwaysModifiesPalette* = 4;
- MayModifyPalette* = 8;
- PickerIsColorSyncAware* = 16;
- CanDoSystemDialog* = 32;
- CanDoApplDialog* = 64;
- HasOwnDialog* = 128;
- CanDetach* = 256;
-
- kNoForcast* = 0;
- kMenuChoice* = 1;
- kDialogAccept* = 2;
- kDialogCancel* = 3;
- kLeaveFocus* = 4;
- kPickerSwitch* = 5;
- kNormalKeyDown* = 6;
- kNormalMouseDown* = 7;
-
-
- TYPE
- EventForcaster* = INTEGER;
-
- (* A Picker.SmallFract value is just the fractional part of a Types.Fixed number,
- which is the low order word. SmallFracts are used to save room,
- and to be compatible with Quickdraw's Quickdraw.RGBColor. They can be
- assigned directly to and from INTEGERs. *)
- (* Unsigned fraction between 0 and 1 *)
- SmallFract* = INTEGER;
-
- (* For developmental simplicity in switching between the HLS and HSV
- models, HLS is reordered into HSL. Thus both models start with
- hue and saturation values; value/lightness/brightness is last. *)
- HSVColor* = RECORD
- hue*: SmallFract; (*Fraction of circle, red at 0*)
- saturation*: SmallFract; (*0-1, 0 for gray, 1 for pure color*)
- value*: SmallFract; (*0-1, 0 for black, 1 for max intensity*)
- END;
-
- HSLColor* = RECORD
- hue*: SmallFract; (*Fraction of circle, red at 0*)
- saturation*: SmallFract; (*0-1, 0 for gray, 1 for pure color*)
- lightness*: SmallFract; (*0-1, 0 for black, 1 for white*)
- END;
-
- CMYColor* = RECORD
- cyan*: SmallFract;
- magenta*: SmallFract;
- yellow*: SmallFract;
- END;
-
- PMColor* = RECORD
- profile*: CMICCProfile.CMProfileHandle;
- color*: CMApplication.CMColor;
- END;
-
- PMColorPtr* = POINTER TO PMColor;
-
- picker* = Types.Ptr;
-
- PickerIconData* = RECORD
- scriptCode*: INTEGER;
- iconSuiteID*: INTEGER;
- helpResType*: Types.ResType;
- helpResID*: INTEGER;
- END;
-
- PickerInitData* = RECORD
- pickerDialog*: Dialogs.DialogPtr;
- choicesDialog*: Dialogs.DialogPtr;
- flags*: LONGINT;
- yourself*: picker;
- END;
-
- PickerMenuItemInfo* = RECORD
- editMenuID*: INTEGER;
- cutItem*: INTEGER;
- copyItem*: INTEGER;
- pasteItem*: INTEGER;
- clearItem*: INTEGER;
- undoItem*: INTEGER;
- END;
-
- PickerMenuState* = RECORD
- cutEnabled*: BOOLEAN;
- copyEnabled*: BOOLEAN;
- pasteEnabled*: BOOLEAN;
- clearEnabled*: BOOLEAN;
- undoEnabled*: BOOLEAN;
- undoString*: Types.Str255;
- END;
-
- ColorChangedProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (userData: LONGINT; VAR newColor: PMColor);
- UserEventProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR event: Events.EventRecord): BOOLEAN;
- ColorChangedUPP* = Types.UniversalProcPtr;
- UserEventUPP* = Types.UniversalProcPtr;
-
- ColorPickerInfo* = RECORD
- theColor*: PMColor;
- dstProfile*: CMICCProfile.CMProfileHandle;
- flags*: LONGINT;
- placeWhere*: DialogPlacementSpec;
- dialogOrigin*: Types.Point;
- pickerType*: LONGINT;
- eventProc*: UserEventUPP;
- colorProc*: ColorChangedUPP;
- colorProcData*: LONGINT;
- prompt*: Types.Str255;
- mInfo*: PickerMenuItemInfo;
- newColorChosen*: BOOLEAN;
- filler*: Types.SInt8;
- END;
-
- SystemDialogInfo* = RECORD
- flags*: LONGINT;
- pickerType*: LONGINT;
- placeWhere*: DialogPlacementSpec;
- dialogOrigin*: Types.Point;
- mInfo*: PickerMenuItemInfo;
- END;
-
- PickerDialogInfo* = RECORD
- flags*: LONGINT;
- pickerType*: LONGINT;
- dialogOrigin*: POINTER TO Types.Point;
- mInfo*: PickerMenuItemInfo;
- END;
-
- ApplicationDialogInfo* = RECORD
- flags*: LONGINT;
- pickerType*: LONGINT;
- theDialog*: Dialogs.DialogPtr;
- pickerOrigin*: Types.Point;
- mInfo*: PickerMenuItemInfo;
- END;
-
- EventData* = RECORD
- event*: POINTER TO Events.EventRecord;
- action*: PickerAction;
- itemHit*: INTEGER;
- handled*: BOOLEAN;
- filler*: Types.SInt8;
- colorProc*: ColorChangedUPP;
- colorProcData*: LONGINT;
- forcast*: EventForcaster;
- END;
-
- EditData* = RECORD
- theEdit*: EditOperation;
- action*: PickerAction;
- handled*: BOOLEAN;
- filler*: Types.SInt8;
- END;
-
- ItemHitData* = RECORD
- itemHit*: INTEGER;
- iMod*: ItemModifier;
- action*: PickerAction;
- colorProc*: ColorChangedUPP;
- colorProcData*: LONGINT;
- where*: Types.Point;
- END;
-
- HelpItemInfo* = RECORD
- options*: LONGINT;
- tip*: Types.Point;
- altRect*: Types.Rect;
- theProc*: INTEGER;
- helpVariant*: INTEGER;
- helpMessage*: Balloons.HMMessageRecord;
- END;
-
- (* Below are the color conversion routines.*)
-
- PROCEDURE Fix2SmallFract*(f: Types.Fixed): SmallFract;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0001, $A82E;
- (*$END*)
- PROCEDURE SmallFract2Fix*(s: SmallFract): Types.Fixed;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0002, $A82E;
- (*$END*)
- PROCEDURE CMY2RGB*((*CONST*)VAR cColor: CMYColor; VAR rColor: Quickdraw.RGBColor);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0003, $A82E;
- (*$END*)
- PROCEDURE RGB2CMY*((*CONST*)VAR rColor: Quickdraw.RGBColor; VAR cColor: CMYColor);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0004, $A82E;
- (*$END*)
- PROCEDURE HSL2RGB*((*CONST*)VAR hColor: HSLColor; VAR rColor: Quickdraw.RGBColor);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0005, $A82E;
- (*$END*)
- PROCEDURE RGB2HSL*((*CONST*)VAR rColor: Quickdraw.RGBColor; VAR hColor: HSLColor);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0006, $A82E;
- (*$END*)
- PROCEDURE HSV2RGB*((*CONST*)VAR hColor: HSVColor; VAR rColor: Quickdraw.RGBColor);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0007, $A82E;
- (*$END*)
- PROCEDURE RGB2HSV*((*CONST*)VAR rColor: Quickdraw.RGBColor; VAR hColor: HSVColor);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0008, $A82E;
- (*$END*)
- (* Below brings up the ColorPicker 1.0 Dialog*)
- PROCEDURE GetColor*(where: Types.Point; prompt: Types.ConstStr255Param; (*CONST*)VAR inColor: Quickdraw.RGBColor; VAR outColor: Quickdraw.RGBColor): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0009, $A82E;
- (*$END*)
- (* Below are the ColorPicker 2.0 routines.*)
- PROCEDURE PickColor*(VAR theColorInfo: ColorPickerInfo): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0213, $A82E;
- (*$END*)
- PROCEDURE AddPickerToDialog*(VAR info: ApplicationDialogInfo; VAR thePicker: picker): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0414, $A82E;
- (*$END*)
- PROCEDURE CreateColorDialog*(VAR info: SystemDialogInfo; VAR thePicker: picker): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0415, $A82E;
- (*$END*)
- PROCEDURE CreatePickerDialog*(VAR info: PickerDialogInfo; VAR thePicker: picker): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0416, $A82E;
- (*$END*)
- PROCEDURE DisposeColorPicker*(thePicker: picker): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0217, $A82E;
- (*$END*)
- PROCEDURE GetPickerVisibility*(thePicker: picker; VAR visible: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0418, $A82E;
- (*$END*)
- PROCEDURE SetPickerVisibility*(thePicker: picker; visible: INTEGER): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0319, $A82E;
- (*$END*)
- PROCEDURE SetPickerPrompt*(thePicker: picker; VAR promptString: Types.Str255): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $041a, $A82E;
- (*$END*)
- PROCEDURE DoPickerEvent*(thePicker: picker; VAR data: EventData): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $041b, $A82E;
- (*$END*)
- PROCEDURE DoPickerEdit*(thePicker: picker; VAR data: EditData): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $041c, $A82E;
- (*$END*)
- PROCEDURE DoPickerDraw*(thePicker: picker): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $021d, $A82E;
- (*$END*)
- PROCEDURE GetPickerColor*(thePicker: picker; whichColor: ColorType; VAR color: PMColor): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $051e, $A82E;
- (*$END*)
- PROCEDURE SetPickerColor*(thePicker: picker; whichColor: ColorType; VAR color: PMColor): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $051f, $A82E;
- (*$END*)
- PROCEDURE GetPickerOrigin*(thePicker: picker; VAR where: Types.Point): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0420, $A82E;
- (*$END*)
- PROCEDURE SetPickerOrigin*(thePicker: picker; where: Types.Point): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0421, $A82E;
- (*$END*)
- PROCEDURE GetPickerProfile*(thePicker: picker; VAR profile: CMICCProfile.CMProfileHandle): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0422, $A82E;
- (*$END*)
- PROCEDURE SetPickerProfile*(thePicker: picker; profile: CMICCProfile.CMProfileHandle): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0423, $A82E;
- (*$END*)
- PROCEDURE GetPickerEditMenuState*(thePicker: picker; VAR mState: PickerMenuState): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0424, $A82E;
- (*$END*)
- PROCEDURE ExtractPickerHelpItem*(thePicker: picker; itemNo: INTEGER; whichState: INTEGER; VAR helpInfo: HelpItemInfo): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0625, $A82E;
- (*$END*)
- CONST
- uppColorChangedProcInfo* = $000003C0; (* PROCEDURE (4 byte param, 4 byte param); *)
- uppUserEventProcInfo* = $000000D0; (* PROCEDURE (4 byte param): 1 byte result; *)
-
- PROCEDURE NewColorChangedProc*(userRoutine: ColorChangedProcPtr): ColorChangedUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewUserEventProc*(userRoutine: UserEventProcPtr): UserEventUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallColorChangedProc*(userData: LONGINT; VAR newColor: PMColor; userRoutine: ColorChangedUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallUserEventProc*(VAR event: Events.EventRecord; userRoutine: UserEventUPP): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END ColorPicker.
-